Testing of systems and applications is an important step in the design and development life cycle. One of the important objectives of testing is to discover the hidden flaws and bugs, and assess the overall reliability. Typically, testing can be undertaken in a simulated, lab environment to reduce the overall testing cost and cycle time. However, simulated, lab testing accounts for anywhere from 50% up to about 75% of the testing requirements. The remaining testing needs to be undertaken in a realistic environment leading to extended testing cycle time. Further, if manual testing procedures are used, the total testing cost also goes up proportionately.
Test automation tools focus on providing a test environment to automatically test as much of the test cases as possible. Such tools help in defining and managing test cases, managing of test data, automatically executing system or application under test with test data, and finally in recording of test results for later verification. In the cases when devices need to be tested in the field, it is useful to upload the required test cases, initiate the testing, and download test results to a lab system. The test automation tools are enhanced to address the remote testing requirements. The uploading and downloading of data to and from a device requires a communication channel between the device and the lab, and this can be achieved either by setting up a primitive communication infrastructure, or enhancing the device temporarily with the required communication channels or exploiting the communication channels available on the device. Remote testing is automated to an extent once the availability of communication channel is ensured.
Considering the case of mobile wireless device testing, the above general framework is applicable to a great extent. However, the mobile wireless devices pose unique challenges due to its dependence on external environment. For example, an application on a mobile wireless device might work satisfactorily in a lab environment and might produce surprising results while tested in a crowded environment with a lot of high-rise buildings. As a consequence, it is important to identify the different environment conditions for each test case and ensure that the system is tested while those environment conditions hold. Automating this requirement becomes one of the major challenges of the test automation tools. Specifically, a test automation tool must plan and schedule test cases in such a way that the associated test cases get tested as quickly as possible.